#ifndef CONFIG_SERIAL_H
#define CONFIG_SERIAL_H

#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QString>
#include <QComboBox>


typedef struct SerialPortConfig
{
    QString serialPortName; // 名字
    int baudRate; // 波特率
    int dataBit; // 数据位
    int checkBit; // 校验位
    int stopBit; // 停止位
    int streamControl; // 流控制
} SerialConfigStruct_t;



void LoadPortToComboBox(QComboBox* combobox);
void LoadBaudToComboBox(QComboBox* combobox);
void LoadParityToComboBox(QComboBox* combobox);


/**
 * @brief 解析用户选择的数据位
 * @param dataBit
 * @return
 */
QSerialPort::DataBits ParseDataBit(QString dataBit);

/**
 * @brief 解析用户选择的停止位
 * @param stopBit
 * @return
 */
QSerialPort::StopBits ParseStopBit(QString stopBit);

/**
 * @brief 解析用户选择的校验方式
 * @param checkBit
 * @return
 */
QSerialPort::Parity ParseCheckBit(QString checkBit);

/**
 * @brief 解析用户选择的流控制
 * @param streamControl
 * @return 0 无流控制
 *         1 硬件流控制
 *         2 软件流控制
 *        -1 error
 */
QSerialPort::FlowControl ParseStreamControl(QString streamControl);


#endif // CONFIG_SERIAL_H
